The embodiments of the present invention relate to finding portions of a computer program that exhibit irregular performance. Modem computer programs are composed of functions. Within object oriented programming, functions also are referred to as “methods.” These functions are often complex in nature, exhibiting different behaviors under correspondingly different circumstances. This can mean that a function may exhibit varying performance according to the particular circumstances at hand when the computer program, and particularly that function, operates.
Developers have come to analyze computer programs in terms of the performance of individual functions. Performance profiling tools can provide information such as the total amount of time spent within a given function during execution of the computer program under analysis. Profiling tools can provide this information in the form of a call graph, for example.
As noted, because of the changing circumstances in which a function may operate, it may be the case that the function performs well in some situations, while performing poorly in other situations. The relative importance of a function's contribution to overall program performance may also vary according to the frequency of calls to the function during runtime of the computer program. Identifying these conditions with available profiling and analysis tools can be difficult.